1. Field of the Invention
The present invention pertains to mobile telecommunications, and particularly to acknowledgment of receipt and retransmission of packet switched data for an upper layer protocol, such as the transmission control protocol/Internet protocol (TCP/IP), for example.
2. Related Art and Other Considerations
Initially commercial mobile or cellular telecommunications systems were primarily employed for voice calls, e.g., circuit switched connections. In more recent years, however, cellular telecommunications systems have also been employed for the transmission of data (packet switched data), with the user equipment taking forms other than a mobile telephone. For example, user equipment such mobile laptops can send data over wireless links and through a cellular telecommunications system to wired computer networks such as the internet.
Cellular telecommunications systems employ a wireless link (e.g., air interface) between the (mobile) user equipment unit and a base station (BS). The base station has transmitters and receivers for radio connections with numerous user equipment units. One or more base stations are connected to (e.g., by landlines or microwave) and managed by a radio network controller (RNC) [also known in some networks as a base station controller (BSC)]. The radio network controller is, in turn, connected through control nodes to a core telecommunications network.
Control nodes can take various forms, depending on the types of services or networks to which the control nodes are connected. For connecting to connection-oriented, circuit switched networks such as PSTN and/or ISDN, the control node can be a mobile switching center (MSC). For connecting to packet switched data services such as the Internet (for example), the control node can be a gateway data support node through which connection is made to the wired data networks, and perhaps one or more serving nodes. Examples of a particular packet data service called the General Packet Radio Service (GPRS) [provided in Europe in the context of the Global System for Mobile communications (GSM)] are provided by the following (all of which are incorporated by reference): U.S. patent application Ser. No. 09/069,969 filed Apr. 30, 1998 entitled xe2x80x9cDynamic Allocation of Packet Data Channelsxe2x80x9d; U.S. patent application Ser. No. 09/069,939 filed Apr. 30, 1998 entitled xe2x80x9cAllocation of Channels for Packet Data Servicesxe2x80x9d; and U.S. patent application Ser. No. 09/090,186 filed Jun. 4, 1998 entitled xe2x80x9cData Packet Radio Service With Enhanced Mobility Managementxe2x80x9d.
As indicated above, packet switched data services can include Internet service. In terms of Internet connection, the transmission control protocol/Internet protocol (TCP/IP) has gained wide acceptance. Although usually functioning together, the internet protocol (IP) and transmission control protocol (TCP) are actually separate protocols, with the TCP being on a higher level (transport level) than the IP (on the network level).
There are numerous implementations of TCP, each with differing characteristics, the RENO implementation perhaps being the most common. In general, TCP supports a wide range of upper-layer protocols (ULPs). A ULP can send continuous streams of data through TCP. The TCP breaks the streams into encapsulated segments, each segment including appropriate addressing and control information. TCP passes the segments to the network layer (e.g., the IP).
The IP layer encloses the TCP segments in IP packets or Internet datagrams. It is the Internet datagram that enables routing to source and destination TCPs in other networks. Thus, the IP serves, e.g., to assemble IP datagrams and enable routing of the IP datagrams between IP addresses (e.g., between hosts) which are included in the IP datagram header.
TCP provides reliability which the IP lacks. In particular, the TCP carries out segmentation and reassembly functions of a datagram to match frame sizes and data-link layer protocols. In addition, TCP performs additional functions, such as addressing within a host, retransmission of lost packets, and flow control. General concepts undergirding TCP/IP are understood from numerous publications, including Freeman, Telecommunication System Engineering, Third Edition, John Wiley and Sons, Inc., (1996), and W.R. Stevens, TCP/IP Illustrated, Volume I: The Protocols (Addison-Wesley, 1994).
Data losses because of bit errors occur over conventional wired links, but such losses are so small as to be essentially non-existent (e.g., on the order of 10xe2x88x926 over copper wire, and 10xe2x88x929 over optical fiber). Such losses over conventional wired links stem almost exclusively from overflowing buffers in routers. TCP is designed to cope with these conditions, and consequently, packet losses are regarded as a congested network. Upon detection of loss, different implementations of TCP invoke different congestion avoidance mechanisms, but generally all such congestion avoidance mechanisms decrease the transmission speed.
Some code-type error recovery capability (e.g., convolutional coding) is provided over the air interface, but such code-type error recovery cannot cope with large errors. Over the air interface, error recovery is performed locally with a local retransmission protocol, wherein all data in a transmission buffer is cached until it has been successfully delivered to the receiver. In essence, any lost data is quickly transmitted by the local retransmission protocol before TCP has a chance to detect the loss. By retransmitting the data locally, faster recover can be done and, most importantly, the TCP will not detect the loss and accordingly will not invoke the TCP congestion avoidance mechanism (unless data is lost somewhere other than over the air interface).
Thus, the task using the local retransmission protocol is how to realize quickly that data is lost, and how to retransmit the lost data. Traditionally, two primary types of strategies in local recovery have been utilized: (1) transport layer recovery of TCP packets, and (2) link layer recovery of smaller data units called segments or frames (e.g., Automatic Repeat reQuest [ARQ]). Of the two general strategies, the ARQ-type of strategy is generally preferred.
Two examples of link layer recovery retransmission protocols are SSCOP (see ITU-T Recommendation Q.2110, 1994) and Radio Link Control (RLC). The SSCOP and RLC protocols are similar, with RLC being an improved variant of SSCOP. FIG. 13A illustrates a scenario of SSCOP operation, wherein segment S213A is lost. Receipt of the next segment S313A triggers a negative acknowledgment message (USTAT(S2)). Unfortunately, as illustrated in FIG. 13A, the negative acknowledgment message (USTAT(S2)) is lost. Moreover, segment S513A is also lost. Transmission of segment S613A therefore triggers a negative acknowledgment message (USTAT(S5)) to recover segment S513A. The negative acknowledgment message (USTAT(S5)) is successfully delivered to the transmitter, which then retransmits segment S513A. At this juncture, segment S213A is still not recovered. When a poll timer maintained by SSCOP expires, a poll message is transmitted to the receiver by setting a poll bit in a header of segment S913A. Upon reception of poll message S913A, the receiver checks its reception buffer, and notices that segment S213A is missing. Upon detection that segment S213A missing, the transmitter transmits a STAT message, in particular STAT(S2). The STAT message is a selective acknowledgment message that can advise of gaps of one or more segments in the reception buffer. Upon reception of the STAT(S2) message, segment S213A is retransmitted.
FIG. 13B illustrates a similar scenario of RLC operation, wherein segment S213B is lost. Receipt of the next segment S313B triggers both transmission of a negative acknowledgment message (USTAT(S2)) and starting of an EPC timer (Estimated PDU Counter) to protect the USTAT message from loss. But the USTAT(S2) message from the receiver is lost, as is the segment S513B from the transmitter. The EPC timer expires in the third segment counting from where the USTAT(S2) message was sent, thereby triggering retransmission of the USTAT(S2) message. Although segment S513B has also been lost, recovery of segment S513B cannot begin until recovery of segment S213B is completed. Therefore, the EPC timer is stopped and restarted (for the recovery of segment S213B). When the USTAT(S2) message succeeds and segment S213B is received, the EPC timer is stopped and the reception buffer inspected. At this point segment S513B is noted as missing, and a recovery is initiated with the USTAT(S5) message. The recovery of segment S513B succeeds and the transmission of data packets can continue.
These two example link layer recovery retransmission protocols (SSCOP and RTL) can manage small losses fairly well, but as the Block Error Rate (BLER) grows, these two protocols are inadequate due to slow retransmission and transmission stalls resulting from filled transmission windows.
What is needed therefore, and an object of the present invention, is a link layer recovery technique which preserves good transmission utilization even during bad transmission conditions.
A mobile telecommunications system comprises a mobile user equipment unit and at least one node through which a packet switched data session is established between the user equipment unit and a data network. One of the node and the user equipment unit serves as a transmitter of segments of data packets and the other of the node and the user equipment unit serves as a receiver of the segments of data packets. If a first lost segment is not retransmitted and successfully received within a timed interval, and if a second lost segment is also lost during the timed interval, at expiration of the timed interval the receiver sends an acknowledgment message to the transmitter, requesting retransmission of both the first lost segment and the second lost segment.
The acknowledgment messages of the system have a unique format which includes a starting sequence number field and a variable size bitmap. The start sequence number (ssn) is mapped to a first non-received segment in a receive buffer; the first bit in the bitmap maps to a segment with a sequence number equal to the start sequence number. Bits in the bitmap are set to a first predetermined value to indicate receipt of respective ones of the plural segments or to a second predetermined value to indicate non-receipt of respective ones of the plural segments. In differing embodiments, the bitmaps of the acknowledgment messages may have or may not have a stop bit. When a stop bit is used, the last bit set to the second predetermined value delineates the end of the information subset of the bitmap.
The transmitter has a poll timer that is started/restarted and canceled in accordance with novel timer operational rules. In particular, starting/restarting a poll timer in the transmitter upon occurrence of any of the following: (1) a sequence number of a segment to be sent from the transmitter to the receiver is greater than or equal to V(a) +MaxWin xe2x88x92MaxP, wherein V(a) is a sequence number of a first segment in a transmission window, MaxWin is the size of the transmission window, and MaxP is a predefined integer less than MaxWin; (2) one or more segments are to be retransmitted from the transmitter to the receiver if the poll timer is already running; and (3) a segment to be transmitted is the last segment in the buffer. The integer MaxP is dynamically determined, and can depend upon one of (1) a number of consecutive lost acknowledgment messages allowed; and (2) a frequency of negative acknowledgment messages. A time out value for the poll timer is also dynamically determined.